package com.ycsj.goldmedalnewconcept.utils;

import java.io.File;

import android.content.Context;

public class CleanUtils {

    private CleanUtils() {
        throw new UnsupportedOperationException("u can't instantiate");
    }

    /**
     * ����ڲ�����
     * <p>/data/data/com.xxx.xxx/cache</p>
     *
     * @param context ������
     * @return {@code true}: ����ɹ�<br>{@code false}: ���ʧ��
     */
    public static boolean cleanInternalCache(Context context) {
        return FileUtils.deleteFilesInDir(context.getCacheDir());
    }

    /**
     * ����ڲ��ļ�
     * <p>/data/data/com.xxx.xxx/files</p>
     *
     * @param context ������
     * @return {@code true}: ����ɹ�<br>{@code false}: ���ʧ��
     */
    public static boolean cleanInternalFiles(Context context) {
        return FileUtils.deleteFilesInDir(context.getFilesDir());
    }

    /**
     * ����ڲ����ݿ�
     * <p>/data/data/com.xxx.xxx/databases</p>
     *
     * @param context ������
     * @return {@code true}: ����ɹ�<br>{@code false}: ���ʧ��
     */
    public static boolean cleanInternalDbs(Context context) {
        return FileUtils.deleteFilesInDir(context.getFilesDir().getParent() + File.separator + "databases");
    }

    /**
     * ��������������ݿ�
     * <p>/data/data/com.xxx.xxx/databases/dbName</p>
     *
     * @param context ������
     * @param dbName  ���ݿ�����
     * @return {@code true}: ����ɹ�<br>{@code false}: ���ʧ��
     */
    public static boolean cleanInternalDbByName(Context context, String dbName) {
        return context.deleteDatabase(dbName);
    }

    /**
     * ����ڲ�SP
     * <p>/data/data/com.xxx.xxx/shared_prefs</p>
     *
     * @param context ������
     * @return {@code true}: ����ɹ�<br>{@code false}: ���ʧ��
     */
    public static boolean cleanInternalSP(Context context) {
        return FileUtils.deleteFilesInDir(context.getFilesDir().getParent() + File.separator + "shared_prefs");
    }


    /**
     * ����Զ���Ŀ¼�µ��ļ�
     *
     * @param dirPath Ŀ¼·��
     * @return {@code true}: ����ɹ�<br>{@code false}: ���ʧ��
     */
    public static boolean cleanCustomCache(String dirPath) {
        return FileUtils.deleteFilesInDir(dirPath);
    }

    /**
     * ����Զ���Ŀ¼�µ��ļ�
     *
     * @param dir Ŀ¼
     * @return {@code true}: ����ɹ�<br>{@code false}: ���ʧ��
     */
    public static boolean cleanCustomCache(File dir) {
        return FileUtils.deleteFilesInDir(dir);
    }
}
